import * as React from "react";
import { useForm } from "react-hook-form";

import {
  Button,
  Checkbox,
  FormControl,
  FormLabel,
  FormHelperText,
  FormErrorMessage,
  RequiredIndicator,
  Divider,
  Input,
  IconButton,
  Radio,
  Select,
  Switch,
  Textarea,
  Badge,
  Code as _Code,
  Kbd,
  Tag,
  Breadcrumb,
  Link,
  Avatar,
  Icon,
  Image,
  InfoIcon,
  XCricleIcon,
  CheckCircleIcon,
  ExclamationIcon,
  Alert,
  Spinner,
  useMessage,
  useNotification,
  cx,
} from "@vechaiui/react";
import {
  Menu,
  Listbox,
  Dialog,
  RadioGroup,
  Disclosure,
  Transition,
  Tab,
} from "@headlessui/react";
import {
  GiftIcon,
  ArrowsExpandIcon,
  DuplicateIcon,
  ShareIcon,
  CalendarIcon,
  TagIcon,
  HashtagIcon,
  CheckIcon,
  SelectorIcon,
  XIcon,
  SunIcon,
  StarIcon,
  MoonIcon,
  ChevronUpIcon,
  ChevronRightIcon,
  UserCircleIcon,
  BellIcon,
  ShieldCheckIcon,
} from "@heroicons/react/outline";
import * as Popover from "@radix-ui/react-popover";
import * as Tooltip from "@radix-ui/react-tooltip";
import * as Tabs from "@radix-ui/react-tabs";
import * as ContextMenu from "@radix-ui/react-context-menu";
import * as Slider from "@radix-ui/react-slider";

const scope = {
  // Icon
  GiftIcon,
  ArrowsExpandIcon,
  DuplicateIcon,
  ShareIcon,
  CalendarIcon,
  TagIcon,
  HashtagIcon,
  CheckIcon,
  SelectorIcon,
  XIcon,
  SunIcon,
  StarIcon,
  MoonIcon,
  ChevronUpIcon,
  ChevronRightIcon,
  UserCircleIcon,
  BellIcon,
  ShieldCheckIcon,
  // Components
  cx,
  Button,
  Checkbox,
  FormControl,
  FormLabel,
  FormHelperText,
  FormErrorMessage,
  RequiredIndicator,
  Divider,
  Input,
  IconButton,
  Radio,
  Select,
  Switch,
  Textarea,
  Badge,
  Code: _Code,
  Kbd,
  Tag,
  Breadcrumb,
  Link,
  Avatar,
  Icon,
  Image,
  InfoIcon,
  XCricleIcon,
  CheckCircleIcon,
  ExclamationIcon,
  Alert,
  Spinner,
  useMessage,
  useNotification,
  // headlessui
  Menu,
  Listbox,
  Dialog,
  RadioGroup,
  Disclosure,
  Transition,
  Tab,
  // Radix
  Popover,
  Tooltip,
  Tabs,
  ContextMenu,
  Slider,
  //
  React,
  useForm,
};

export default scope;
